T K

DDD Tabanlı Mikro Servis Stratejisi ve Dönüşümü

AgeSA Hayat ve Emeklilik A.Ş.

DDD Tabanlı Mikro Servis Stratejisi ve Dönüşümü

DDD Tabanlı Mikro Servis Stratejisi ve Dönüşümü

Proje İçeriği

Dünyada ve Türkiye'de Sigorta ve Finans sektöründeki sistemlerin ana veri kaynakları poliçe ve müşteri bazındadır. Bu nedenle bu verilerin daha etkin kullanılabilmesi için ana sigorta uygulamalarının tamamı yekpare (monolith) uygulamalar olarak tasarlanmıştır. Bu da sistemden bütünün ufak bir parçasında bile olsa bir sorun çıktığında hizmet kalitesini ciddi anlamda etkilemektedir. Ayrıca Türkiye'de regülasyonlar gereği verilerimizi korumak için genel bulut platformları kullanılamıyor ve bu teknolojilerin getirmiş olduğu avantajların kullanılmasına engel oluyor. Hedefimize iç ve dış müşterilerimize regülasyonların izin verdiği ölçüde dünya standartlarında hizmet vermeyi koyduğumuz için BT ekibi 2016 yılında AgeSA bünyesinde bulunan teknoloji altyapısını dünya standartlarında bir seviyeye çıkarmayı ana odak noktamız haline getirdik. İlk olarak işe şu anda kullanmakta olduğumuz hedef mimarimizin temellerini oluşturarak başladık. Ardından şirket içi bulut platformumuzu oluşturmaya başladık ve bu alandaki çalışmalarımızı tamamladık. Mevzuatların izin verdiği ölçüde BT kaynaklarımızı en iyi şekilde yönetmeye yardımcı olan, Türk Finans ve Sigorta dünyasının teknoloji öncülerinden biri haline geldiğimiz bulut platformumuz sayesinde 2020 yılı sonunda şirketimizin günlük işlemlerinin yaklaşık %50'sini finansal işlemlerinin yaklaşık %60 ını bulut platformumuza taşıdık. Bu sayede bulut teknolojilerinin bize sağladığı ölçeklenebilirlik ve maliyet yönetimi açısından önemli kazanımlar elde ettik. Sürekli dönüşüm ve mükemmeliyetçilik bakış açısıyla, sistemlerimizi daha iyi hale getirmek için “DDD Tabanlı Mikro Servis Stratejisi ve Dönüşümü” projemizi hayata geçirmeye karar verdik. Projeye başlamadan önce, popülerleşen mimariler yerine şirketimize uygun bir mimari oluşturmanın daha doğru bir yöntem olacağını düşünerek teknoloji alanında dünya lideri firmaların sektörde kabul görmüş metodoloji önerileri ile kendi mimarimizi oluşturduk. MikroServis mimarisinde ölçeklenebilirlik, bağımlılık yönetimi, yazılım döngü süreçleri daha kolay ve verimli bir şekilde yönetilebilir, uygulamalar olumsuz etkileri azaltmak için birbirinden izole edilir, test süreçleri daha kolaydır bu sayede yazılım döngüleri daha hızlı tamamlanabilir, hataların tespiti daha kolaydır ve etkileri yekpare uygulamalara göre görece olarak daha azdır. Bu sağladığı faydaların yanında olumsuz olarak kabul edilebilecek, canlı ortamda birden çok ara uygulamayı yönetmek için yüksek düzeyde otomasyon gerektirmesi gibi sistem karmaşıklığını arttıracak etkileri de mevcuttur. Domain Driven Design olarak da bilinen şirketimiz içinde Etki Alanına Dayalı Tasarım modeli diye isimlendirmeye çalıştığımız tasarım modeli ile MikroServis mimarisinin getirdiği avantajları kullanmamıza olanak sağlayan ancak içerdiği karmaşıklığı önemli ölçüde ortadan kaldıran MiniServis mimarisi kurumsal boyuttaki firmalar için yönetilebilir ve kullanılabilir olmaktadır. Şirket olarak bu projede MiniServis yaklaşımı kullanmaya karar verdik, bu sayede hem ölçeklenebilirlik, bağımlılık yönetimi yazılım döngü süreçleri ile ilgili sorunlarımız çözülmüş hem de MikroServislerden oluşan alt uygulama karmaşıklığı ortadan kaldırılmış oldu. Projemizi hayata geçirirken kullandığımız ana teknolojiler Microservice mimarisi, Docker, Kubernates, Istio, Openshift(On-premise), BitBucket, Jenkins, Java 11 versiyonudur. Pilot olarak seçilen CMP(Customer Messaging Platform) uygulaması, kurum içi bulut ortamı platformunda yönetilebilir, ölçeklenebilir bir MiniServis yapısına dönüştürülmüştür. Dönüşümden önce, CMP uygulamasında bir sorun olması durumunda tüm sistem hizmetlerine erişilemezdi. CMP uygulamasını MiniServis olarak ayırdıktan sonra, bu uygulamada çıkan sorunlar sebebi ile oluşan genel servis kesintisi çok ciddi oranda azaltılmış oldu. İstemci(client) uygulamaları daha küçük ve daha verimli hale geldi. MiniServis mimarisinin kullanılmasıyla, uygulamaların sunucularda kapladığı alanların küçüldüğü ve canlı geçişleri paralelleştirildiği için canlı geçiş süreleri 30 dakikadan 6-7 dakikaya indi. Uygulama içindeki kod miktarlarının boyutunun küçültülmesi sayesinde CI/CD süreçleri de basitleştirilmiş oldu. Daha küçük zaman dilimlerinde bağımsız olarak daha küçük kod parçalarını canlı ortamlara çıkmak mümkün hale geldi. Sağlanan faydalara örnek vermek gerekirse; Uygulama boyutlarında azalma (Monolith Dosya Boyutu: 138MB, MiniServis Dosya Boyutu: 95MB) Dağıtım Süresinde Azalma (Monolith Canlı Çıkış Süresi: 31m MiniServis Canlı Çıkış Süresi: 6,5m) Ağır yüklerde kaynak artışı (Monotith Scale Up Time: 4m MiniServis Scale Up Time: 2m) Herhangi bir uygulamasal sorun çıkması durumunda MiniServis mimarisinde sadece sorunlu uygulamalar etkilenmeye başladı. Ayrıca gün içi operasyonel ve gün sonu toplu çalışan işlemlerimiz de MiniServis mimarisiyle ayrıştırılabilir hale getirildi. Uygulama geliştirme döngülerimize de fayda sağlayan bu dönüşüm sayesinde iç ve dış kütüphane bağımlılıkları basitleştirilmiş oldu ve genel platform test ihtiyaçları da en aza indirildi, kütüphane değişiklikleri durumunda kullanıcının sadece etkilenen MiniServisleri test etmesi yeterli hale getirildi. Bu yaklaşım ile projelerin birbirleri üzerindeki etkileri azalmaya başladı ve proje süreleri kısalmaya başlamıştır. Ayrıca domain bazlı mini servisin farklılaşan uzmanlıkları ile uygulama yöneticileri tarafından ihtiyaç duyulan teknik destek daha hızlı bir şekilde karşılanmaya başlanmıştır. Hem iş birimi tarafında hem de BT tarafında uzmanlaşma ve verimliliği artırmıştır.


Projenin Amacı

Bireysel Emeklilik, Hayat Sigortası ve Ferdi Kaza Sigortası


Proje içindeki en büyük inovasyon nedir? (yeni bir teknoloji veya var olan teknolojinin farklı kullanımı gibi. IOT, M2M, AI vb.)

Projemizi mevcut iş süreçlerimizi iyileştirmek ve yeni hizmetlerimize altyapı sağlayabilmek amacı ile gerçekleştirdik.


Proje kurum içindeki hangi bölüme fayda sağlamıştır?(satış, pazarlama, finans, İK, IT, Üretim, Planlama, Satın alma, Lojistik Müşteri İlişkileri gibi)

Dünyada ve Türkiye'de Sigorta ve Finans sektöründeki sistemlerin ana veri kaynakları poliçe ve müşteri bazındadır. Bu nedenle bu verilerin daha etkin kullanılabilmesi için ana sigorta uygulamalarının tamamı yekpare(monolith) uygulamalar olarak tasarlanmıştır. Türkiye'de verilerimizi korumak için genel bulut platformları kullanılamaz. 2016 yılında başlattığımız yenilikçi bakış açısı ile önce kendi şirket içi bulut platformumuzu oluşturduk, ardından sektördeki operasyonlardan farklı bir yöntemle uygulamalarımızı Domain Driven Design ilkelerine göre küçük uygulamalara dönüştürmeye başladık. Bu sayede sistem performansları, T2M ve operasyonel verimlilik alanlarında önemli kazanımlar elde ettik. Bu proje sayesinde BT çalışanlarımızın uğraşmak zorunda kaldığı sorunlar önemli ölçüde azaldı. Domain Driven Design olarak da bilinen şirketimiz içinde Etki Alanına Dayalı Tasarım modeli diye isimlendirmeye çalıştığımız bakış açılarımız geliştikçe, uzmanlık seviyemiz derinleşti. BT çalışanlarımız daha mükemmel hale geldikçe iş birimlerimiz de proje dönüşlerinde daha hızlı yanıtlar almaya başladı.


Projenin hayata geçirilmesi konusunda üst yönetimin desteğini tam olarak alabildiniz mi?

Genel Müdür yardımcısı seviyesinde desteklenen projemiz için üst yönetimimizin projemiz ile ilgili yorumları; "Mevzuatsal olarak çok fazla değişikliğin olduğu günümüz dünyasında, ilgili değişiklikleri etki alanı en aza indirgenmiş olarak yansıtabilecek bir mimari oluşturmak bizim için çok önemliydi. Bu mimari sayesinde sistem performanslarında, T2M'de, operasyonel verimlilikte önemli iyileştirmeler sağladık ve iş birimlerimizin ihtiyaç duyduğu değişiklikleri daha az yan etki ile yönetebildik. Buna ek olarak DDD tabanlı Mikroservislerin ölçeklenebilirlik özelliği ile zaman zaman belirli noktalarda oluşan aşırı yüklenme sorunlarını otomatik olarak yönetebiliyoruz. Etki alanı tabanlı Mikro hizmet mimarisinin bir başka yararı da BT çalışanlarımızın ve iş departmanımızın aynı dili kullanma becerisinin artmasıdır." şeklindedir.


Proje sonunda ortaya çıkan sonuçları analiz edebildiniz mi? Rakamsal verilerle ifade eder misiniz?(ROI, maliyetlerde yüzdesel azalma, üretim süresinde azalma, hata payının düşmesi vs.)

Projemiz yazılım mimarimizi dünya standartlarına çıkarmayı hedeflediği için ilk faydalarını İş Teknolojileri ekiplerimiz tarafından gözlemledik. Ancak Tüm sigortacılık sistemimizi etkileyecek bir altyapı kurduğumuz için operasyonel anlamda müşterilerimize direk temas eden bütün iş birimlerimiz projemizden fayda sağlar hale gelmişlerdir. Özellikle; Finans & Muhasebe, Pazarlama, Ürün Yönetimi, Satış, Müşteri Hizmetleri, Operasyon birimlerimiz direk etkilenmektedir.


Projenizde şirket içinden kaç kişi aktif olarak görev almıştır? Ekip birimleri hakkında kısaca bilgi verir misiniz?

9 kişi


Projenizde (varsa)işbirliği kurduğunuz veya destek aldığınız bilişim şirketlerini belirtiniz.

Bulunmamaktadır.


Proje sırasında kullandığınız ve spesifik önemi olan markaları (varsa) belirtiniz. (Yazılım veya donanım markaları)

Openshift, Docker, Kubernates